{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>\n",
       "@import url('http://fonts.googleapis.com/css?family=Source+Code+Pro');\n",
       "@import url('http://fonts.googleapis.com/css?family=Lora');\n",
       "\n",
       ".CodeMirror pre {\n",
       "    font-family: 'Source Code Pro', Consolas, monocco, monospace;\n",
       "}\n",
       "    div.cell{\n",
       "        //width: 950px;\n",
       "        margin-left: 0% !important;\n",
       "        margin-right: auto;\n",
       "    }\n",
       "    div.text_cell_render{\n",
       "        font-family: 'Lora';\n",
       "        line-height: 125%;\n",
       "        font-size: 100%;\n",
       "        text-align: justify;\n",
       "        text-justify:inter-word;\n",
       "    }\n",
       "    div.text_cell code {\n",
       "        background: transparent;\n",
       "        color: #000000;\n",
       "        font-weight: 400;\n",
       "        font-size: 11pt;\n",
       "        font-family:  'Source Code Pro', Consolas, monocco, monospace;\n",
       "   }\n",
       "    h1 {\n",
       "        font-family: 'Open sans',verdana,arial,sans-serif;\n",
       "\t}\n",
       "\n",
       "    div.input_area {\n",
       "        background: #F6F6F9;\n",
       "        border: 1px solid #586e75;\n",
       "    }\n",
       "\n",
       "    .text_cell_render h1 {\n",
       "        font-weight: 200;\n",
       "        font-size: 30pt;\n",
       "        line-height: 100%;\n",
       "        color:#c76c0c;\n",
       "        margin-bottom: 0.5em;\n",
       "        margin-top: 1em;\n",
       "        display: block;\n",
       "        white-space: wrap;\n",
       "        text-align: left;\n",
       "    }\n",
       "    h2 {\n",
       "        font-family: 'Open sans',verdana,arial,sans-serif;\n",
       "        text-align: left;\n",
       "    }\n",
       "    .text_cell_render h2 {\n",
       "        font-weight: 200;\n",
       "        font-size: 16pt;\n",
       "        font-style: italic;\n",
       "        line-height: 100%;\n",
       "        color:#c76c0c;\n",
       "        margin-bottom: 0.5em;\n",
       "        margin-top: 1.5em;\n",
       "        display: block;\n",
       "        white-space: wrap;\n",
       "        text-align: left;\n",
       "    }\n",
       "    h3 {\n",
       "        font-family: 'Open sans',verdana,arial,sans-serif;\n",
       "    }\n",
       "    .text_cell_render h3 {\n",
       "        font-weight: 200;\n",
       "        font-size: 14pt;\n",
       "        line-height: 100%;\n",
       "        color:#d77c0c;\n",
       "        margin-bottom: 0.5em;\n",
       "        margin-top: 2em;\n",
       "        display: block;\n",
       "        white-space: wrap;\n",
       "        text-align: left;\n",
       "    }\n",
       "    h4 {\n",
       "        font-family: 'Open sans',verdana,arial,sans-serif;\n",
       "    }\n",
       "    .text_cell_render h4 {\n",
       "        font-weight: 100;\n",
       "        font-size: 14pt;\n",
       "        color:#d77c0c;\n",
       "        margin-bottom: 0.5em;\n",
       "        margin-top: 0.5em;\n",
       "        display: block;\n",
       "        white-space: nowrap;\n",
       "    }\n",
       "    h5 {\n",
       "        font-family: 'Open sans',verdana,arial,sans-serif;\n",
       "    }\n",
       "\n",
       "    .text_cell_render h5 {\n",
       "        font-weight: 200;\n",
       "        font-style: normal;\n",
       "        color: #1d3b84;\n",
       "        font-size: 16pt;\n",
       "        margin-bottom: 0em;\n",
       "        margin-top: 0.5em;\n",
       "        display: block;\n",
       "        white-space: nowrap;\n",
       "    }\n",
       "    div.output_subarea.output_text.output_pyout {\n",
       "        overflow-x: auto;\n",
       "        overflow-y: visible;\n",
       "        max-height: 5000000px;\n",
       "    }\n",
       "    div.output_subarea.output_stream.output_stdout.output_text {\n",
       "        overflow-x: auto;\n",
       "        overflow-y: visible;\n",
       "        max-height: 5000000px;\n",
       "    }\n",
       "    div.output_wrapper{\n",
       "        margin-top:0.2em;\n",
       "        margin-bottom:0.2em;\n",
       "}\n",
       "\n",
       "    code{\n",
       "        font-size: 6pt;\n",
       "\n",
       "    }\n",
       "    .rendered_html code{\n",
       "    background-color: transparent;\n",
       "    }\n",
       "    ul{\n",
       "        margin: 2em;\n",
       "    }\n",
       "    ul li{\n",
       "        padding-left: 0.5em;\n",
       "        margin-bottom: 0.5em;\n",
       "        margin-top: 0.5em;\n",
       "    }\n",
       "    ul li li{\n",
       "        padding-left: 0.2em;\n",
       "        margin-bottom: 0.2em;\n",
       "        margin-top: 0.2em;\n",
       "    }\n",
       "    ol{\n",
       "        margin: 2em;\n",
       "    }\n",
       "    ol li{\n",
       "        padding-left: 0.5em;\n",
       "        margin-bottom: 0.5em;\n",
       "        margin-top: 0.5em;\n",
       "    }\n",
       "    ul li{\n",
       "        padding-left: 0.5em;\n",
       "        margin-bottom: 0.5em;\n",
       "        margin-top: 0.2em;\n",
       "    }\n",
       "    a:link{\n",
       "       color:#447adb;\n",
       "    }\n",
       "    a:visited{\n",
       "       color: #1d3b84;\n",
       "    }\n",
       "    a:hover{\n",
       "       color: #1d3b84;\n",
       "    }\n",
       "    a:focus{\n",
       "       color:#447adb;\n",
       "    }\n",
       "    a:active{\n",
       "       font-weight: bold;\n",
       "       color:#447adb;\n",
       "    }\n",
       "    .rendered_html :link {\n",
       "       text-decoration: underline;\n",
       "    }\n",
       "    .rendered_html :hover {\n",
       "       text-decoration: none;\n",
       "    }\n",
       "    .rendered_html :visited {\n",
       "      text-decoration: none;\n",
       "    }\n",
       "    .rendered_html :focus {\n",
       "      text-decoration: none;\n",
       "    }\n",
       "    .rendered_html :active {\n",
       "      text-decoration: none;\n",
       "    }\n",
       "    .warning{\n",
       "        color: rgb( 240, 20, 20 )\n",
       "    }\n",
       "    hr {\n",
       "      color: #f3f3f3;\n",
       "      background-color: #f3f3f3;\n",
       "      height: 1px;\n",
       "    }\n",
       "    blockquote{\n",
       "      display:block;\n",
       "      background: #fcfcfc;\n",
       "      border-left: 5px solid #c76c0c;\n",
       "      font-family: 'Open sans',verdana,arial,sans-serif;\n",
       "      width:680px;\n",
       "      padding: 10px 10px 10px 10px;\n",
       "      text-align:justify;\n",
       "      text-justify:inter-word;\n",
       "      }\n",
       "      blockquote p {\n",
       "        margin-bottom: 0;\n",
       "        line-height: 125%;\n",
       "        font-size: 100%;\n",
       "      }\n",
       "</style>\n",
       "<script>\n",
       "    MathJax.Hub.Config({\n",
       "                        TeX: {\n",
       "                           extensions: [\"AMSmath.js\"],\n",
       "                           equationNumbers: { autoNumber: \"AMS\", useLabelIds: true}\n",
       "                           },\n",
       "                tex2jax: {\n",
       "                    inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n",
       "                    displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n",
       "                },\n",
       "                displayAlign: 'center', // Change this to 'center' to center equations.\n",
       "                \"HTML-CSS\": {\n",
       "                    scale: 95,\n",
       "                        availableFonts: [],\n",
       "                        preferredFont:null,\n",
       "                        webFont: \"TeX\",\n",
       "                    styles: {'.MathJax_Display': {\"margin\": 4}}\n",
       "                },\n",
       "                 \"fast-preview\": {\n",
       "                    \"disabled\": false\n",
       "                }\n",
       "        });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#format the book\n",
    "%matplotlib inline\n",
    "from __future__ import division, print_function\n",
    "import sys;sys.path.insert(0,'..')\n",
    "from  book_format import load_style;load_style('..')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Computing and plotting PDFs of discrete data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So let's investigate how to compute and plot probability distributions.\n",
    "\n",
    "\n",
    "First, let's make some data according to a normal distribution. We use `numpy.random.normal` for this. The parameters are not well named. `loc` is the mean of the distribution, and `scale` is the standard deviation. We can call this function to create an arbitrary number of data points that are distributed according to that mean and std."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "50000\n",
      "3.00067325106\n",
      "2.00433280075\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import numpy.random as random\n",
    "\n",
    "mean = 3\n",
    "std = 2\n",
    "\n",
    "data = random.normal(loc=mean, scale=std, size=50000)\n",
    "print(len(data))\n",
    "print(data.mean())\n",
    "print(data.std())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see from the print statements we got 5000 points that have a mean very close to 3, and a standard deviation close to 2.\n",
    "\n",
    "We can plot this Gaussian by using `scipy.stats.norm` to create a frozen function that we will then use to compute the pdf (probability distribution function) of the Gaussian."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c191ba47b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.stats as stats\n",
    "\n",
    "def plot_normal(xs, mean, std, **kwargs):\n",
    "    norm = stats.norm(mean, std)\n",
    "    plt.plot(xs, norm.pdf(xs), **kwargs)\n",
    "\n",
    "xs = np.linspace(-5, 15, num=200)\n",
    "plot_normal(xs, mean, std, color='k')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "But we really want to plot the PDF of the discrete data, not the idealized function.\n",
    "\n",
    "There are a couple of ways of doing that. First, we can take advantage of `matplotlib`'s `hist` method, which computes a histogram of a collection of data. Normally `hist` computes the number of points that fall in a bin, like so:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n6tQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c1911d7400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(data, bins=200)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "that is not very useful to us - we want the PDF, not bin counts. Fortunately `hist` includes a `normed` parameter which will plot the PDF for us."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nf2GQFn6XG5+IAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c190171390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(data, bins=200, normed=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I may not want bars, so I can specify the `histtype` as 'step' to get a line."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n5vWcI90WZ6vKJKpxYFDSUuAAsBa4uszGJZ0K3A/cFRF/VbdsQUQckiTgcuDJliI3y/GFZ0+u/Ovr\nS1HZXJs2UUXEMUnrgR3APGBrROyWtAmYiIgxSRdSTUhnAh+W9HsRcR7wG8AK4GxJ12ebvD4idgF3\nSzqHatfiLuC3271zZv5QNet+pS5KGxHbge118zbmHo9T7RKsX+/LwJcbbPP9LUVqZmZ9yVdPN7OG\n8hWpu1etU3wJJTMzS5orKuspPiY1O379LEWuqMzMLGlOVGZmljQnKjMzS5oTlZmZJc2Jyrqeh02b\n9TYnKjMzS5oTlfUMD602600+j8rMWlLf1eovCHayuaIyM7OkuaKyruVBFGb9wRWVmZklzRWVdT0f\nIzHrba6ozMwsaaUSlaRVkp6WNClppGD5CkmPSTomabhu2TpJe7Ofdbn5F0h6ItvmZ7Nb0ptZl1ky\nsu34j9nJMG3Xn6R5wBZgJVABxiWNRcSeXLNngeuBm+rWPQv4XWAICODRbN0XgVuBjwAPU7178Crg\ngdnukJmdHPVdrE5MNlfKVFTLgcmI2BcRrwL3AGvyDSJif0Q8Drxet+6HgG9ExJEsOX0DWCVpAXB6\nROyMiADuAi6f7c6YmVnvKTOYYiHwXG66AlxUcvtF6y7MfioF8wtNTEyUfLq5k2JMRfohzrncx354\nPefyef16tle3xNmqMhVV0bGjKLn9RuvOZptmZtZHylRUFWBxbnoRcLDk9ivAr9Wt+1A2f1HZbQ4N\nDZV8upOv9o0lpZiK9EWco9tmvm6L+uL1bNXo1GNUZZ/Xr2d7dVucrSpTUY0Dg5KWSjoVWAuMldz+\nDuASSWdKOhO4BNgREYeAlyRdnI32uw742gziNzOzHjdtRRURxyStp5p05gFbI2K3pE3ARESMSboQ\nuB84E/iwpN+LiPMi4oik36ea7AA2RcSR7PFHgTuAN1Ed7ecRf2ZdJD8KsDYCMD8S0CdiW7uUujJF\nRGynOoQ8P29j7vE4J3bl5dttBbYWzJ8Azm8lWOtfvmK3Wf/yJZQsaT5Xx8x8CSXrSk5gZv3Dicq6\nwv7Nq93dZ9annKisqzhZmfUfJyozM0uaE5WZmSXNo/7MbNamO6eqvo1ZK1xRmZlZ0lxRWZKaDT/3\nN3Oz/uKKyszMkuaKypLm6snMXFGZmVnSXFFZcnx5pO5WXwX772mz5YrKzMyS5kRlyfLxKTMDJyoz\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c19202c668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(data, bins=200, normed=True, histtype='step', lw=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To be sure it is working, let's also plot the idealized Gaussian in black."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c1937a32b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(data, bins=200, normed=True, histtype='step', lw=2)\n",
    "norm = stats.norm(mean, std)\n",
    "plt.plot(xs, norm.pdf(xs), color='k', lw=2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There is another way to get the approximate distribution of a set of data. There is a technique called *kernel density estimate* that uses a kernel to estimate the probability distribution of a set of data. SciPy implements it with the function `gaussian_kde`. Do not be mislead by the name - Gaussian refers to the type of kernel used in the computation. This works for any distribution, not just Gaussians. In this section we have a Gaussian distribution, but soon we will not, and this same function will work."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c193822e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "kde = stats.gaussian_kde(data)\n",
    "\n",
    "xs = np.linspace(-5, 15, num=200)\n",
    "plt.plot(xs, kde(xs))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Monte Carlo Simulations\n",
    "\n",
    "\n",
    "We (well I) want to do this sort of thing because I want to use monte carlo simulations to compute distributions. It is easy to compute Gaussians when they pass through linear functions, but difficult to impossible to compute them analytically when passed through nonlinear functions. Techniques like particle filtering handle this by taking a large sample of points, passing them through a nonlinear function, and then computing statistics on the transformed points. Let's do that.\n",
    "\n",
    "We will start with the linear function $f(x) = 2x + 12$ just to prove to ourselves that the code is working. I will alter the mean and std of the data we are working with to help ensure the numbers that are output are unique It is easy to be fooled, for example, if the formula multipies x by 2, the mean is 2, and the std is 2. If the output of something is 4, is that due to the multication factor, the mean, the std, or a bug? It's hard to tell. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ8AAAD5CAYAAAD4ODhnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAF75JREFUeJzt3X+MZWd93/H3p0vtStCMzI9a1Dbs\nQgYpC0S4mdiKaAEFA0uN7ERayroiMhJRi8qqVFYllgaZ1aYoG9JGrRQ3QS2WkrTgOkNCV/amW8KP\nJlEg2QEczK7l7LJd4ckao2I0NCqFrPn2jzmzvh7fO3Nm5s65v94vabT3nPM8c59nzs79zPOc556b\nqkKSpC79jVE3QJI0ewwfSVLnDB9JUucMH0lS5wwfSVLnDB9JUudahU+SA0keTXI+yZE+x9+T5OEk\nDyX54yT7m/17k3yv2f9Qkt8YdgckSZMnm73PJ8ke4C+ANwHLwGngjqo621PmR6rqu83j24B/VlUH\nkuwFHqiqV+1O8yVJk6jNyOcm4HxVXaiqHwD3Abf3FlgLnsZzAd+5Kkka6DktylwHPNazvQzcvL5Q\nkvcCdwFXAT/dc2hfkq8A3wU+WFV/1FtvZWXFoJKkKTc3N5fe7TYjn/TZ96zAqKp7qurlwPuBDza7\nHwdeUlU3shpMH0/yI1trsiRp2rQJn2Xghp7t64FLG5S/D/gZgKr6flV9u3n8JeDrwCu211RJ0rRo\nM+12GphPsg/4S+AQ8I97CySZr6pzzeatwLlm/4uAJ6vqqSQvA+aBC4OeaG5ubkuNX1paAmBhYWFL\n9SbFNPdvmvsG092/ae4b2L9hWllZGXhs0/CpqstJDgOngD3AvVV1JskxYKmqTgCHk9wC/DXwHeDO\npvrrgGNJLgNPAe+pqid31BtJ0sRrM/Khqk4CJ9ftu7vn8fsG1Psk8MmdNFCSNH28w4EkqXOGjySp\nc4aPJKlzho8kqXOGjySpc4aPJKlzho8kqXOGjySpc4aPJKlzho8kqXOGjySpc4aPJKlzho8kqXOG\njySpc4aPJKlzho8kqXOGjySpc4aPJKlzho8kqXOGjySpc4aPJKlzho8kqXOtwifJgSSPJjmf5Eif\n4+9J8nCSh5L8cZL9Pcc+0NR7NMlbhtl4SdJk2jR8kuwB7gHeCuwH7ugNl8bHq+rVVfUa4CPArzZ1\n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\nnOEjSerc/wdRZSDymPriEwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c19381c1d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean = 13.99\n",
      "std  = 2.80\n"
     ]
    }
   ],
   "source": [
    "def f(x):\n",
    "    return 2*x + 12\n",
    "\n",
    "mean = 1.\n",
    "std = 1.4\n",
    "data = random.normal(loc=mean, scale=std, size=50000)\n",
    "\n",
    "d_t = f(data) # transform data through f(x)\n",
    "\n",
    "plt.hist(data, bins=200, normed=True, histtype='step', lw=2)\n",
    "plt.hist(d_t, bins=200, normed=True, histtype='step', lw=2)\n",
    "\n",
    "plt.ylim(0, .35)\n",
    "plt.show()\n",
    "print('mean = {:.2f}'.format(d_t.mean()))\n",
    "print('std  = {:.2f}'.format(d_t.std()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is what we expected. The input is the Gaussian $\\mathcal{N}(\\mu=1, \\sigma=1.4)$, and the function is $f(x) = 2x+12$. Therefore we expect the mean to be shifted to $f(\\mu) = 2*1+12=14$. We can see from the plot and the print statement that this is what happened. \n",
    "\n",
    "Before I go on, can you explain what happened to the standard deviation? You may have thought that the new $\\sigma$ should be passed through $f(x)$ like so $2(1.4) + 12=14.81$. But that is not correct - the standard deviation is only affected by the multiplicative factor, not the shift. If you think about that for a moment you will see it makes sense. We multiply our samples by 2, so they are twice as spread out as before. Standard deviation is a measure of how spread out things are, so it should also double. It doesn't matter if we then shift that distribution 12 places, or 12 million for that matter - the spread is still twice the input data.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Nonlinear Functions\n",
    "\n",
    "Now that we believe in our code, lets try it with nonlinear functions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c1938f79e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean = -1.59\n",
      "std  = 2.10\n"
     ]
    }
   ],
   "source": [
    "def f2(x):\n",
    "    return (np.cos((1.5*x + 2.1))) * np.sin(0.3*x) - 1.6*x\n",
    "\n",
    "d_t = f2(data)\n",
    "plt.subplot(121)\n",
    "plt.hist(d_t, bins=200, normed=True, histtype='step', lw=2)\n",
    "\n",
    "plt.subplot(122)\n",
    "kde = stats.gaussian_kde(d_t)\n",
    "xs = np.linspace(-10, 10, 200)\n",
    "plt.plot(xs, kde(xs), 'k')\n",
    "plot_normal(xs, d_t.mean(), d_t.std(), color='g', lw=3)\n",
    "plt.show()\n",
    "print('mean = {:.2f}'.format(d_t.mean()))\n",
    "print('std  = {:.2f}'.format(d_t.std()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here I passed the data through the nonlinear function $f(x) = \\cos(1.5x+2.1)\\sin(\\frac{x}{3}) - 1.6x$. That function is quite close to linear, but we can see how much it alters the pdf of the sampled data. \n",
    "\n",
    "There is a lot of computation going on behind the scenes to transform 50,000 points and then compute their PDF. The Extended Kalman Filter (EKF) gets around this by linearizing the function at the mean and then passing the Gaussian through the linear equation. We saw above how easy it is to pass a Gaussian through a linear function. So lets try that.\n",
    "\n",
    "We can linearize this by taking the derivative of the function at x. We can use sympy to get the derivative. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1.5*sin(x/3)*sin(1.5*x + 2.1) + cos(x/3)*cos(1.5*x + 2.1)/3 - 1.6"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sympy\n",
    "x = sympy.symbols('x')\n",
    "f = sympy.cos(1.5*x+2.1) * sympy.sin(x/3) - 1.6*x\n",
    "dfx = sympy.diff(f, x)\n",
    "dfx"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now compute the slope of the function by evaluating the derivative at the mean."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-1.66528051815545"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m = dfx.subs(x, mean)\n",
    "m"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The equation of a line is $y=mx+b$, so the new standard deviation should be $~1.67$ times the input std. We can compute the new mean by passing it through the original function because the linearized function is just the slope of f(x) evaluated at the mean. The slope is a tangent that touches the function at $x$, so both will return the same result. So, let's plot this and compare it to the results from the monte carlo simulation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c19419d5c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(d_t, bins=200, normed=True, histtype='step', lw=2)\n",
    "plot_normal(xs, f2(mean), abs(float(m)*std), color='k', lw=3, label='EKF')\n",
    "plot_normal(xs, d_t.mean(), d_t.std(), color='r', lw=3, label='MC')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see from this that the estimate from the EKF (in red) is not exact, but it is not a bad approximation either. "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
